#!/usr/bin/env python
# -*- coding: utf-8 -*-

# @Time     :2020/12/05
# @Author   :Changshu
# @File     :Exercise_530.py
# 530. 二叉搜索树的最小绝对差
# 给你一棵所有节点为非负值的二叉搜索树，请你计算树中任意两节+点的差的绝对值的最小值。
class TreeNode:
	def __init__(self,x):
		self.val=x
		self.left=None
		self.right=None

'''抄袭别人的，这代码写的好，要好好学习'''
class Solution:
	def getMinimumDifference(self, root: TreeNode) -> int:
		res=float('inf')
		pre=None
		def inOrder(root:TreeNode):
			nonlocal res,pre
			if not root:
				return
			inOrder(root.left)
			if pre:
				res=min(res,abs(pre.val-root.val))
			pre=root
			inOrder(root.right)
		inOrder(root)
		return res